package com.io.nio;

import java.io.FileInputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

/**
 *
 */
public class FileChannelDemo1 {


    /**
     * 获取FileChannel
     */
    public void getFileChannel(){
//        不能直接打开 FileChannel，必须通过 FileInputStream、FileOutputStream
//        或者 RandomAccessFile 来获取 FileChannel，它们都有 getChannel 方法
//
//        通过 FileInputStream 获取的 channel 只能读
//        通过 FileOutputStream 获取的 channel 只能写
//        通过 RandomAccessFile 是否能读写根据构造 RandomAccessFile 时的读写模式决定
    }

    /**
     *
     * FileChannel读取
     * @throws Exception
     */
    public void readFileChannel() throws  Exception{
        FileInputStream fileInputStream = new FileInputStream("D:\\1.text");
        FileChannel channel = fileInputStream.getChannel();
        ByteBuffer buffer=ByteBuffer.allocate(10);
        int readBytes = channel.read(buffer);
    }

    /**
     * FileChannel写入
     */

    /**
     * FileChannel位置
     */

    /**
     * FileChannel强制写入
     */


    /**
     * 两个FileChannel传输数据
     * transferTo方法 零拷贝
     */
}
